<!-- 设备详情 -->

<template>
  <EasyModal v-model="model" v-bind="MAP.MODEL_PROPS">
    <template #tab>
      <ParamTab bind="tab" isCard whole />
      <MyBind v-if="!noBind" />
    </template>

    <WebShow>
      <MyDetail />
      <MyModal />
    </WebShow>
  </EasyModal>
</template>

<script>
// ============================== 导入依赖 ============================== //

import CORE from '@/CORE'
import store from './store'
import props from './props'
import mixDetail from '@admin/components/detail/mixDetail'

// ============================== 导出组件 ============================== //

export default {
  /**
   * 名称定义 (实际使用名称)
   */
  name: 'DetailDevice',

  /**
   * 混入列表 (配置选项合并)
   */
  mixins: [CORE.mixStore(store), mixDetail],

  /**
   * 组件导入 (Abc.vue + Abc/index.vue)
   */
  ...CORE.components(require.context('./', true, /vue$/)),

  /**
   * 属性注册 (抽取以便查阅)
   */
  props,

  /**
   * 监听属性 (深度 deep 首次 immediate)
   */
  watch: {
    /**
     * 监听 ID 改变
     */
    id() {
      this.param.tab = 'base'
    },

    /**
     * 监听页签切换
     */
    'param.tab'(tab) {
      tab === 'base' ? this.startOne() : this[`${tab}_startList`](1)
    },
  },
}
</script>
